//用于管理home模块的小仓库
import { defineStore } from 'pinia'  //引入创建pinia的方法

import { reqGetBanner, reqGetProductShow } from '@/api/product/index'  //引入发送请求获取数据的方法
import { reqGetBannerItem } from '@/api/common/index'

const useHomeStore = defineStore('home', {
    //state：仓库存储数据的地方
    state: () => ({
        bannerList: [] as any, //轮播图数据
        productShow: [] as any,//产品展示数据
        bannerItem: [] as any, // 每个页面的头部大图数据
    }),

    //action：处理action，可以书写自己的业务逻辑,可以直接修改state
    actions: {
        //首页轮播图数据
        async getBannerList() {
            const result = await reqGetBanner()
            if (result.code == 200) {
                this.bannerList = result.data
            }
        },
        //首页产品展示数据
        async getProductShow() {
            const result = await reqGetProductShow()
            if (result.code == 200) {
                this.productShow = result.data
            }
        },
        // 每个页面的头部大图数据
        async getBannerItem() {
            const result = await reqGetBannerItem()
            if (result.code == 200) {
                this.bannerItem = result.data
            } else {
                if (result.data) {
                    return Promise.reject(result.data)
                }
                return Promise.reject("请求失败")
            }
        },
        // 清除仓库
        clearHomeStore() {
            this.bannerList = [] //轮播图数据
                this.productShow = []//产品展示数据
                this.bannerItem = [] // 每个页面的头部大图数据
        }
    },

    //getters：可以理解为计算属性，用于简化仓库属性。让组件获取仓库数据更便捷
    getters: {

    }
})

export default useHomeStore